package at.donalfonso.model;

import java.io.Serializable;

import org.mozartspaces.capi3.Index;
import org.mozartspaces.capi3.Queryable;

@Queryable
public class Tisch implements Serializable {
	
	private static final long serialVersionUID = -7973668351163409584L;

	private int plaetze = 4;
	
	@Index
	private TischStatus status;
	
	@Index
	private String gruppeId = "";
	
	public enum TischStatus {
		FREI,
		BESETZT;
	};
	
	private final String id;
	
	private static int uniqueId = 0;
	
	public Tisch() {
		id = "T" + getNextId();
		status = TischStatus.FREI;
	}

	public int getPlaetze() {
		return plaetze;
	}
	
	public String getId() {
		return id;
	}
	
	public String getGruppeId() {
		return gruppeId;
	}
	
	public void setGruppeId(String gruppeId) {
		this.gruppeId = gruppeId;
	}
	
	public TischStatus getStatus() {
		return status;
	}
	
	public void setStatus(TischStatus status) {
		this.status = status;
	}
	
	private static int getNextId() {
		uniqueId++;
		
		return uniqueId;
	}
	
	public String toString() {
		String gid = ""+gruppeId;
		
		StringBuffer buffer = new StringBuffer();
		buffer.append("Tisch: " + id + " - ");
		buffer.append("Status: " + status + " - ");
		buffer.append("Gruppe: " + gid);
		
		return buffer.toString();
	}

	/**
	 * Überschrieben wegen Listanzeige
	 * gleiche Id bedeutet gleicher Tisch
	 */
	public boolean equals(Object o) {
		if (this == o)
			return true;
		if ((o == null) || (o.getClass() != this.getClass()))
			return false;
		Tisch t = (Tisch) o;
		return (getId().equals(t.getId()));
	}
}
